﻿using System;
namespace Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik {
    
    
    [global::Xtee.Core.Attributes.XmlTypeAttribute(Name="Kohustis", Namespace="http://producers.etoimik.xtee.riik.ee/producer/etoimik", Target=typeof(Kohustis))]
    public class KohustisSerializer : global::Xtee.Core.Types.AbstractXteeSerializable {
        
        protected IKohustis clazz;
        
        public KohustisSerializer(IKohustis clazz) {
            this.clazz = clazz;
        }
        
        public override void WriteXml(global::Xtee.Core.IXteeXmlWriter Writer) {
            base.WriteXml(Writer);
            if (clazz.ObjektID!=null) {
                Writer.WriteStartElement("ObjektID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.ObjektID))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SeisundKL!=null) {
                Writer.WriteStartElement("SeisundKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.SeisundKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SeisundKP!=null) {
                Writer.WriteStartElement("SeisundKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.SeisundKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.VersID!=null) {
                Writer.WriteStartElement("VersID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.VersID))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.AlgusKP!=null) {
                Writer.WriteStartElement("AlgusKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.AlgusKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Alustaja!=null) {
                Writer.WriteStartElement("Alustaja");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Alustaja))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.LoppKP!=null) {
                Writer.WriteStartElement("LoppKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.LoppKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Lopetaja!=null) {
                Writer.WriteStartElement("Lopetaja");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Lopetaja))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Taidetud!=null) {
                Writer.WriteStartElement("Taidetud");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.Taidetud))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.TaitmiseTapsustusKL!=null) {
                Writer.WriteStartElement("TaitmiseTapsustusKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.TaitmiseTapsustusKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.RakendumiseAlgusKP!=null) {
                Writer.WriteStartElement("RakendumiseAlgusKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.RakendumiseAlgusKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.RakendamiseTahtaegKP!=null) {
                Writer.WriteStartElement("RakendamiseTahtaegKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.RakendamiseTahtaegKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.RakendumiseLoppKP!=null) {
                Writer.WriteStartElement("RakendumiseLoppKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.RakendumiseLoppKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.RakendamiseLoppAlusKL!=null) {
                Writer.WriteStartElement("RakendamiseLoppAlusKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.RakendamiseLoppAlusKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Tyhistatud!=null) {
                Writer.WriteStartElement("Tyhistatud");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.Tyhistatud))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Vabastatud!=null) {
                Writer.WriteStartElement("Vabastatud");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.Vabastatud))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.RakendamiseLoppPohjendus!=null) {
                Writer.WriteStartElement("RakendamiseLoppPohjendus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.RakendamiseLoppPohjendus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.VoibKandaOsiti!=null) {
                Writer.WriteStartElement("VoibKandaOsiti");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.VoibKandaOsiti))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.TaodeldavSumma!=null) {
                Writer.WriteStartElement("TaodeldavSumma");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "decimal");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDecimal(((decimal)(clazz.TaodeldavSumma))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.TaodeldavSummaValuutaKL!=null) {
                Writer.WriteStartElement("TaodeldavSummaValuutaKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.TaodeldavSummaValuutaKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MoistetudSumma!=null) {
                Writer.WriteStartElement("MoistetudSumma");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "decimal");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDecimal(((decimal)(clazz.MoistetudSumma))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MoistetudSummaValuutaKL!=null) {
                Writer.WriteStartElement("MoistetudSummaValuutaKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.MoistetudSummaValuutaKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.TasutudSumma!=null) {
                Writer.WriteStartElement("TasutudSumma");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "decimal");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDecimal(((decimal)(clazz.TasutudSumma))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.TasutudSummaValuutaKL!=null) {
                Writer.WriteStartElement("TasutudSummaValuutaKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.TasutudSummaValuutaKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Selgitus!=null) {
                Writer.WriteStartElement("Selgitus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Selgitus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Osaline!=null) {
                Writer.WriteStartElement("Osaline");
                global::Xtee.Core.SerializationMetadata metaOsaline = this.GetMetaData(clazz.Osaline);
                Writer.WriteTypeAttribute(metaOsaline.TypeQualifiedName.Namespace, metaOsaline.TypeQualifiedName.Name);
                metaOsaline.NewSerializer(clazz.Osaline).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.LopetatavadKohustised!=null) {
                Writer.WriteStartElement("LopetatavadKohustised");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Kohustis", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.LopetatavadKohustised.Count);
                for (int x = 0; ((clazz.LopetatavadKohustised != null) 
                            && (x < clazz.LopetatavadKohustised.Count)); x = (x + 1)) {
                    if (clazz.LopetatavadKohustised[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaLopetatavadKohustised = this.GetMetaData(clazz.LopetatavadKohustised[x]);
                        Writer.WriteTypeAttribute(metaLopetatavadKohustised.TypeQualifiedName.Namespace, metaLopetatavadKohustised.TypeQualifiedName.Name);
                        metaLopetatavadKohustised.NewSerializer(clazz.LopetatavadKohustised[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.MakseRekvisiidid!=null) {
                Writer.WriteStartElement("MakseRekvisiidid");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("MakseRekvisiidid", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.MakseRekvisiidid.Count);
                for (int x = 0; ((clazz.MakseRekvisiidid != null) 
                            && (x < clazz.MakseRekvisiidid.Count)); x = (x + 1)) {
                    if (clazz.MakseRekvisiidid[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaMakseRekvisiidid = this.GetMetaData(clazz.MakseRekvisiidid[x]);
                        Writer.WriteTypeAttribute(metaMakseRekvisiidid.TypeQualifiedName.Namespace, metaMakseRekvisiidid.TypeQualifiedName.Name);
                        metaMakseRekvisiidid.NewSerializer(clazz.MakseRekvisiidid[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.SeisundidKL!=null) {
                Writer.WriteStartElement("SeisundidKL");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Olek", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.SeisundidKL.Count);
                for (int x = 0; ((clazz.SeisundidKL != null) 
                            && (x < clazz.SeisundidKL.Count)); x = (x + 1)) {
                    if (clazz.SeisundidKL[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaSeisundidKL = this.GetMetaData(clazz.SeisundidKL[x]);
                        Writer.WriteTypeAttribute(metaSeisundidKL.TypeQualifiedName.Namespace, metaSeisundidKL.TypeQualifiedName.Name);
                        metaSeisundidKL.NewSerializer(clazz.SeisundidKL[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.SisestamiseKP!=null) {
                Writer.WriteStartElement("SisestamiseKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.SisestamiseKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Sisestaja!=null) {
                Writer.WriteStartElement("Sisestaja");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Sisestaja))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MuutmiseKP!=null) {
                Writer.WriteStartElement("MuutmiseKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.MuutmiseKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Muutja!=null) {
                Writer.WriteStartElement("Muutja");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Muutja))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SulgemiseKP!=null) {
                Writer.WriteStartElement("SulgemiseKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.SulgemiseKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.KlientsysteemiID!=null) {
                Writer.WriteStartElement("KlientsysteemiID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.KlientsysteemiID))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MoistetudOriginaalSumma!=null) {
                Writer.WriteStartElement("MoistetudOriginaalSumma");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "decimal");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDecimal(((decimal)(clazz.MoistetudOriginaalSumma))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MoistetudOriginaalSummaValuutaKL!=null) {
                Writer.WriteStartElement("MoistetudOriginaalSummaValuutaKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.MoistetudOriginaalSummaValuutaKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Maksegraafik!=null) {
                Writer.WriteStartElement("Maksegraafik");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("OsaMakse", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Maksegraafik.Count);
                for (int x = 0; ((clazz.Maksegraafik != null) 
                            && (x < clazz.Maksegraafik.Count)); x = (x + 1)) {
                    if (clazz.Maksegraafik[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaMaksegraafik = this.GetMetaData(clazz.Maksegraafik[x]);
                        Writer.WriteTypeAttribute(metaMaksegraafik.TypeQualifiedName.Namespace, metaMaksegraafik.TypeQualifiedName.Name);
                        metaMaksegraafik.NewSerializer(clazz.Maksegraafik[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.OsaMaksed!=null) {
                Writer.WriteStartElement("OsaMaksed");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("OsaMakse", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.OsaMaksed.Count);
                for (int x = 0; ((clazz.OsaMaksed != null) 
                            && (x < clazz.OsaMaksed.Count)); x = (x + 1)) {
                    if (clazz.OsaMaksed[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaOsaMaksed = this.GetMetaData(clazz.OsaMaksed[x]);
                        Writer.WriteTypeAttribute(metaOsaMaksed.TypeQualifiedName.Namespace, metaOsaMaksed.TypeQualifiedName.Name);
                        metaOsaMaksed.NewSerializer(clazz.OsaMaksed[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.Laekumised!=null) {
                Writer.WriteStartElement("Laekumised");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Laekumine", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Laekumised.Count);
                for (int x = 0; ((clazz.Laekumised != null) 
                            && (x < clazz.Laekumised.Count)); x = (x + 1)) {
                    if (clazz.Laekumised[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaLaekumised = this.GetMetaData(clazz.Laekumised[x]);
                        Writer.WriteTypeAttribute(metaLaekumised.TypeQualifiedName.Namespace, metaLaekumised.TypeQualifiedName.Name);
                        metaLaekumised.NewSerializer(clazz.Laekumised[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.EnnistatavadKohustised!=null) {
                Writer.WriteStartElement("EnnistatavadKohustised");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Kohustis", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.EnnistatavadKohustised.Count);
                for (int x = 0; ((clazz.EnnistatavadKohustised != null) 
                            && (x < clazz.EnnistatavadKohustised.Count)); x = (x + 1)) {
                    if (clazz.EnnistatavadKohustised[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaEnnistatavadKohustised = this.GetMetaData(clazz.EnnistatavadKohustised[x]);
                        Writer.WriteTypeAttribute(metaEnnistatavadKohustised.TypeQualifiedName.Namespace, metaEnnistatavadKohustised.TypeQualifiedName.Name);
                        metaEnnistatavadKohustised.NewSerializer(clazz.EnnistatavadKohustised[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.MaksegraafikOnTyhistatav!=null) {
                Writer.WriteStartElement("MaksegraafikOnTyhistatav");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.MaksegraafikOnTyhistatav))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Vastutaja!=null) {
                Writer.WriteStartElement("Vastutaja");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Osaline", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Vastutaja.Count);
                for (int x = 0; ((clazz.Vastutaja != null) 
                            && (x < clazz.Vastutaja.Count)); x = (x + 1)) {
                    if (clazz.Vastutaja[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaVastutaja = this.GetMetaData(clazz.Vastutaja[x]);
                        Writer.WriteTypeAttribute(metaVastutaja.TypeQualifiedName.Namespace, metaVastutaja.TypeQualifiedName.Name);
                        metaVastutaja.NewSerializer(clazz.Vastutaja[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.VastutamiseAlgusKP!=null) {
                Writer.WriteStartElement("VastutamiseAlgusKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.VastutamiseAlgusKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.VastutamiseLoppKP!=null) {
                Writer.WriteStartElement("VastutamiseLoppKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.VastutamiseLoppKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Tagasimaksed!=null) {
                Writer.WriteStartElement("Tagasimaksed");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Tagasimakse", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Tagasimaksed.Count);
                for (int x = 0; ((clazz.Tagasimaksed != null) 
                            && (x < clazz.Tagasimaksed.Count)); x = (x + 1)) {
                    if (clazz.Tagasimaksed[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaTagasimaksed = this.GetMetaData(clazz.Tagasimaksed[x]);
                        Writer.WriteTypeAttribute(metaTagasimaksed.TypeQualifiedName.Namespace, metaTagasimaksed.TypeQualifiedName.Name);
                        metaTagasimaksed.NewSerializer(clazz.Tagasimaksed[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.KohustiseMaaranudToiming!=null) {
                Writer.WriteStartElement("KohustiseMaaranudToiming");
                global::Xtee.Core.SerializationMetadata metaKohustiseMaaranudToiming = this.GetMetaData(clazz.KohustiseMaaranudToiming);
                Writer.WriteTypeAttribute(metaKohustiseMaaranudToiming.TypeQualifiedName.Namespace, metaKohustiseMaaranudToiming.TypeQualifiedName.Name);
                metaKohustiseMaaranudToiming.NewSerializer(clazz.KohustiseMaaranudToiming).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.KohustistViimatiMojutanudToiming!=null) {
                Writer.WriteStartElement("KohustistViimatiMojutanudToiming");
                global::Xtee.Core.SerializationMetadata metaKohustistViimatiMojutanudToiming = this.GetMetaData(clazz.KohustistViimatiMojutanudToiming);
                Writer.WriteTypeAttribute(metaKohustistViimatiMojutanudToiming.TypeQualifiedName.Namespace, metaKohustistViimatiMojutanudToiming.TypeQualifiedName.Name);
                metaKohustistViimatiMojutanudToiming.NewSerializer(clazz.KohustistViimatiMojutanudToiming).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.Hoiatused!=null) {
                Writer.WriteStartElement("Hoiatused");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("ETHoiatus", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Hoiatused.Count);
                for (int x = 0; ((clazz.Hoiatused != null) 
                            && (x < clazz.Hoiatused.Count)); x = (x + 1)) {
                    if (clazz.Hoiatused[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaHoiatused = this.GetMetaData(clazz.Hoiatused[x]);
                        Writer.WriteTypeAttribute(metaHoiatused.TypeQualifiedName.Namespace, metaHoiatused.TypeQualifiedName.Name);
                        metaHoiatused.NewSerializer(clazz.Hoiatused[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
        }
        
        public override void ReadXml(global::Xtee.Core.IXteeXmlReader Reader) {
            base.ReadXml(Reader);
            if (Reader.LocalName=="ObjektID") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>Kohustis>ObjektID");
                }
                clazz.ObjektID = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("ObjektID")).Value;
            }
            if (Reader.LocalName=="SeisundKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SeisundKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("SeisundKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SeisundKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SeisundKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("SeisundKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="VersID") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>Kohustis>VersID");
                }
                clazz.VersID = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("VersID")).Value;
            }
            if (Reader.LocalName=="AlgusKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AlgusKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("AlgusKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Alustaja") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Alustaja = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Alustaja")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LoppKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LoppKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("LoppKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Lopetaja") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Lopetaja = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Lopetaja")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Taidetud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Taidetud = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("Taidetud")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TaitmiseTapsustusKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TaitmiseTapsustusKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("TaitmiseTapsustusKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="RakendumiseAlgusKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.RakendumiseAlgusKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("RakendumiseAlgusKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="RakendamiseTahtaegKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.RakendamiseTahtaegKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("RakendamiseTahtaegKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="RakendumiseLoppKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.RakendumiseLoppKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("RakendumiseLoppKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="RakendamiseLoppAlusKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.RakendamiseLoppAlusKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("RakendamiseLoppAlusKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Tyhistatud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Tyhistatud = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("Tyhistatud")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Vabastatud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Vabastatud = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("Vabastatud")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="RakendamiseLoppPohjendus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.RakendamiseLoppPohjendus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("RakendamiseLoppPohjendus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="VoibKandaOsiti") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.VoibKandaOsiti = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("VoibKandaOsiti")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TaodeldavSumma") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TaodeldavSumma = new global::Xtee.Core.Schema.XsdDecimal(Reader.ReadElementString("TaodeldavSumma")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TaodeldavSummaValuutaKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TaodeldavSummaValuutaKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("TaodeldavSummaValuutaKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MoistetudSumma") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MoistetudSumma = new global::Xtee.Core.Schema.XsdDecimal(Reader.ReadElementString("MoistetudSumma")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MoistetudSummaValuutaKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MoistetudSummaValuutaKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("MoistetudSummaValuutaKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TasutudSumma") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TasutudSumma = new global::Xtee.Core.Schema.XsdDecimal(Reader.ReadElementString("TasutudSumma")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TasutudSummaValuutaKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TasutudSummaValuutaKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("TasutudSummaValuutaKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Selgitus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Selgitus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Selgitus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Osaline") {
                if ((Reader.IsElementNil() == false)) {
                    global::Xtee.Core.SerializationMetadata metaOsaline = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaline>(Reader, "Osaline", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                    clazz.Osaline = metaOsaline.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaline>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Osaline");
                        metaOsaline.NewSerializer(clazz.Osaline).ReadXml(Reader);
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LopetatavadKohustised") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LopetatavadKohustised = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKohustis>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("LopetatavadKohustised");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaLopetatavadKohustised = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKohustis>(Reader, "Kohustis", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKohustis item = metaLopetatavadKohustised.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKohustis>();
                                clazz.LopetatavadKohustised.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaLopetatavadKohustised.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.LopetatavadKohustised.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MakseRekvisiidid") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MakseRekvisiidid = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMakseRekvisiidid>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("MakseRekvisiidid");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaMakseRekvisiidid = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMakseRekvisiidid>(Reader, "MakseRekvisiidid", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMakseRekvisiidid item = metaMakseRekvisiidid.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMakseRekvisiidid>();
                                clazz.MakseRekvisiidid.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaMakseRekvisiidid.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.MakseRekvisiidid.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SeisundidKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SeisundidKL = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOlek>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("SeisundidKL");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaSeisundidKL = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOlek>(Reader, "Olek", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOlek item = metaSeisundidKL.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOlek>();
                                clazz.SeisundidKL.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaSeisundidKL.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.SeisundidKL.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SisestamiseKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SisestamiseKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("SisestamiseKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Sisestaja") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Sisestaja = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Sisestaja")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MuutmiseKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MuutmiseKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("MuutmiseKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Muutja") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Muutja = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Muutja")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SulgemiseKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SulgemiseKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("SulgemiseKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="KlientsysteemiID") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.KlientsysteemiID = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("KlientsysteemiID")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MoistetudOriginaalSumma") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MoistetudOriginaalSumma = new global::Xtee.Core.Schema.XsdDecimal(Reader.ReadElementString("MoistetudOriginaalSumma")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MoistetudOriginaalSummaValuutaKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MoistetudOriginaalSummaValuutaKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("MoistetudOriginaalSummaValuutaKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Maksegraafik") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Maksegraafik = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaMakse>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Maksegraafik");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaMaksegraafik = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaMakse>(Reader, "OsaMakse", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaMakse item = metaMaksegraafik.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaMakse>();
                                clazz.Maksegraafik.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaMaksegraafik.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Maksegraafik.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="OsaMaksed") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.OsaMaksed = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaMakse>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("OsaMaksed");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaOsaMaksed = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaMakse>(Reader, "OsaMakse", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaMakse item = metaOsaMaksed.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaMakse>();
                                clazz.OsaMaksed.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaOsaMaksed.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.OsaMaksed.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Laekumised") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Laekumised = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ILaekumine>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Laekumised");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaLaekumised = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ILaekumine>(Reader, "Laekumine", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ILaekumine item = metaLaekumised.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ILaekumine>();
                                clazz.Laekumised.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaLaekumised.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Laekumised.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="EnnistatavadKohustised") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.EnnistatavadKohustised = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKohustis>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("EnnistatavadKohustised");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaEnnistatavadKohustised = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKohustis>(Reader, "Kohustis", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKohustis item = metaEnnistatavadKohustised.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKohustis>();
                                clazz.EnnistatavadKohustised.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaEnnistatavadKohustised.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.EnnistatavadKohustised.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MaksegraafikOnTyhistatav") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MaksegraafikOnTyhistatav = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("MaksegraafikOnTyhistatav")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Vastutaja") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Vastutaja = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaline>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Vastutaja");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaVastutaja = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaline>(Reader, "Osaline", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaline item = metaVastutaja.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaline>();
                                clazz.Vastutaja.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaVastutaja.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Vastutaja.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="VastutamiseAlgusKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.VastutamiseAlgusKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("VastutamiseAlgusKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="VastutamiseLoppKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.VastutamiseLoppKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("VastutamiseLoppKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Tagasimaksed") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Tagasimaksed = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ITagasimakse>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Tagasimaksed");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaTagasimaksed = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ITagasimakse>(Reader, "Tagasimakse", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ITagasimakse item = metaTagasimaksed.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ITagasimakse>();
                                clazz.Tagasimaksed.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaTagasimaksed.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Tagasimaksed.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="KohustiseMaaranudToiming") {
                if ((Reader.IsElementNil() == false)) {
                    global::Xtee.Core.SerializationMetadata metaKohustiseMaaranudToiming = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>(Reader, "Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                    clazz.KohustiseMaaranudToiming = metaKohustiseMaaranudToiming.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("KohustiseMaaranudToiming");
                        metaKohustiseMaaranudToiming.NewSerializer(clazz.KohustiseMaaranudToiming).ReadXml(Reader);
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="KohustistViimatiMojutanudToiming") {
                if ((Reader.IsElementNil() == false)) {
                    global::Xtee.Core.SerializationMetadata metaKohustistViimatiMojutanudToiming = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>(Reader, "Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                    clazz.KohustistViimatiMojutanudToiming = metaKohustistViimatiMojutanudToiming.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("KohustistViimatiMojutanudToiming");
                        metaKohustistViimatiMojutanudToiming.NewSerializer(clazz.KohustistViimatiMojutanudToiming).ReadXml(Reader);
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Hoiatused") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Hoiatused = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IETHoiatus>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Hoiatused");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaHoiatused = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IETHoiatus>(Reader, "ETHoiatus", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IETHoiatus item = metaHoiatused.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IETHoiatus>();
                                clazz.Hoiatused.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaHoiatused.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Hoiatused.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
        }
    }
}
